/**
 * 工具函数入口文件
 * 统一导出所有工具函数
 */

// 导出日期工具函数
export * from './date'

// 导出存储工具函数
export * from './storage'

// 导出数字工具函数
export * from './number'

// 导出性能优化工具函数
export * from './performance'

// 导出URL工具函数
export * from './url'

// 导出通用工具函数
export * from './common'

// 导出环境变量工具函数
export const env = {
  /**
   * 获取环境变量
   * @param key 环境变量名
   * @param defaultValue 默认值
   * @returns 环境变量值
   */
  get(key: string, defaultValue = ''): string {
    const envKey = `VITE_${key}`
    return import.meta.env[envKey] || defaultValue
  },
  
  /**
   * 判断是否为开发环境
   */
  isDev(): boolean {
    return import.meta.env.DEV
  },
  
  /**
   * 判断是否为生产环境
   */
  isProd(): boolean {
    return import.meta.env.PROD
  },
  
  /**
   * 获取API基础URL
   */
  getApiBaseUrl(): string {
    return this.get('API_BASE_URL')
  },
  
  /**
   * 获取应用标题
   */
  getAppTitle(): string {
    return this.get('APP_TITLE')
  },
  
  /**
   * 获取默认语言
   */
  getDefaultLocale(): string {
    return this.get('DEFAULT_LOCALE', 'zh')
  },
  
  /**
   * 获取默认分页大小
   */
  getDefaultPageSize(): number {
    return parseInt(this.get('DEFAULT_PAGE_SIZE', '10'))
  },
  
  /**
   * 获取图片CDN基础URL
   */
  getImageBaseUrl(): string {
    return this.get('IMAGE_BASE_URL')
  },
  
  /**
   * 获取API请求超时时间
   */
  getApiTimeout(): number {
    return parseInt(this.get('API_TIMEOUT', '15000'))
  },
  
  /**
   * 是否启用API模拟
   */
  isUseMock(): boolean {
    return this.get('USE_MOCK') === 'true'
  },
  
  /**
   * 是否启用调试工具
   */
  isEnableDebug(): boolean {
    return this.get('ENABLE_DEBUG') === 'true'
  },
  
  /**
   * 是否启用错误日志
   */
  isEnableErrorLog(): boolean {
    return this.get('ENABLE_ERROR_LOG') === 'true'
  },
  
  /**
   * 获取商品服务URL
   */
  getGoodsServiceUrl(): string {
    return this.get('GOODS_SERVICE_URL')
  }
}